#include "msg_queue_peer.h"
typedef int bool;

union mval
{
    int data_switch;
    int data_val_i;
    double data_val_f;
};

struct stmdata
{
    int data_key;           // 数据编号
    char data_name[50];     // 数据名称
    int data_type;  // 数据类型
    union mval val;
};

struct moddata
{
    int data_key;           // 数据编号
    char data_name[50];     // 数据名称
    char data_addr[50];     //设备地址
    int data_type;          // 数据类型
    union mval val;
};

struct STM32
{
    struct stmdata data[14];
};

struct Modbus
{
    struct moddata data[6];
};

struct CJSON
{
    char version[50];      // 版本
    int report_type;   // 报告类型
    int report_period; // 报告周期

    char mqtt_server_addr[50]; // mqtt服务器ip
    int mqtt_server_port;  // mqtt服务器端口号

    char mb_dev_addr[50]; // modbus端ip
    int mb_dev_port;  // modbus端口号

    // STM32
    struct STM32 stm32;

    // modbus
    struct Modbus modbus;
};

struct mtext
{
    int data_Humidifier;        // 加湿器阈值
    int data_Dehumidifier;      // 除湿器阈值
    int data_TemController;     // 控温仪器阈值
    int Tmp_Hign;               // 温度制冷阈值
    int Tmp_Low;                // 温度制热阈值
    int Hum;                    // 除湿阈值
    int mode;                   // 工作模式(除湿/控温)
    bool mode_aircondition;     // 空调开关状态
    bool state_Humidifier;      // 加湿器工作状态
    bool state_Dehumidifier;    // 除湿器工作状态
    bool state_TemController;   // 控温仪器工作状态
};

//消息队列结构体
struct msgQueue
{
    long key;                   // 对应点表中的key值
    struct mtext text;
    
};